CxProlog - testes semanticos



ARRAY


array(NONSENSE) ::: false.


array(5) ::: false.


array_new(X), array(X) ::: true.


-----------------------------------


ARRAY_SET


array_new(X), array_set(X, 5, term) ::: true.


array_new(X), array_set(X, 5, term), array_set(X, 5, term2) ::: true.


array_new(X), array_set(X, 5, TERM) ::: true. // funcionalidade da versao 							futura


-----------------------------------


ARRAY_GET


array_new(X), array_set(X, 5, term), array_get(X, 5, term) ::: true.


array_new(X), array_get(X, 5, term) ::: false.



-----------------------------------


ARRAY_NEW


array_new(X) ::: true.



-----------------------------------


ARRAY_CLEAR


array_new(X), array_clear(X) ::: true.


array_new(X), array_clear(X), array_get(X, 5, term) ::: fail.



-----------------------------------


ARRAY_DELETE


array_new(X), array_delete(X) ::: true.


array_new(X), array_delete(X), array_clear(X) ::: throw(_).



-----------------------------------



ARRAY_DELETE_ITEM


array_new(X), array_set(X, 5, term), array_delete_item(X, 5) ::: true.


array_new(X), array_delete_item(X, 5) ::: false.


array_new(X), array_set(X, 5, term), array_delete_item(X, 5), array_get(X, 5, _) ::: fail.



-----------------------------------


ARRAY_AS_LIST


array_new(A), array_set(A, 5, term1), array_Set(A, 5, term2), array_as_list(A, [5-term1,3-term2] ::: true.